// 这是一个使用inet_addr函数将点分十进制的IP地址转换为网络字节序的32位二进制数值的实例
// 该代码中将argv[1]的参数送入的点分十进制字符串中调用inet_addr函数，以获得网络字节序的二进制数值，
// 然后将这个数值利用printf函数在屏幕上输出
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
	unsigned long iptemp;
	struct in_addr *iptemp2;
	int temp;
	if(argc != 2){
		printf("请输入正确的ip地址：\n");
		return -1;
	}

	// 调用inet_addr函数获得网络地址
	//iptemp = inet_addr(argv[1]);
	//temp = inet_aton(argv[1],iptemp2);
	
	// 为什么调用inet_addr函数之后，调用inet_aton函数会失败！！！
	temp = inet_aton(argv[1],iptemp2);
	if(temp == 0){
		printf("inet_aton函数调用失败!\n");
		return -2;		
	}

	iptemp = inet_addr(argv[1]);

	printf("返回的ip数值是%lu.\n",iptemp);
	printf("argv[1] = %s\n", argv[1]);

	printf("iptemp2 = %u\n",iptemp2->s_addr);
	return 0;
}

